This specification relates to a data communication system and, in particular, a system that implements real-time, scalable publish-subscribe messaging.
The publish-subscribe pattern (or “PubSub”) is a data communication messaging arrangement implemented by software systems where so-called publishers publish messages to topics and so-called subscribers receive the messages pertaining to particular topics to which they are subscribed. There can be one or more publishers per topic and publishers generally have no knowledge of what subscribers, if any, will receive the published messages. Some PubSub systems do not cache messages or have small caches meaning that subscribers may not receive messages that were published before the time of subscription to a particular topic. PubSub systems can be susceptible to performance instability during surges of message publications or as the number of subscribers to a particular topic increases. Further, existing Pubsub systems may attempt to process as many events and messages as possible on the client device. This leads to performance degradation when the flow of messages is too high for the client device.